This invention relates to computer networks having mirrored or phantom disk resources, and more particularly to a mechanism for allowing disk I/O to take place between matching remote disk mirror drivers on a computer network.
The Windows NT operating system is described in detail in a set of five volumes entitled xe2x80x9cMicrosoft Windows NT Resource Kitxe2x80x94for Windows NT Workstation and Windows NT Server Version 3.51, Technical Reference Setxe2x80x9d published by Microsoft Press, 1994. The five volumes include xe2x80x9cWindows NT Messages,xe2x80x9d Windows NT Networking Guide,xe2x80x9d and xe2x80x9cWindows NT Resource Guide.xe2x80x9d Reference is also made to M. Minasi et al., xe2x80x9cMastering Windows NT Server 3.51,xe2x80x9d 2nd Ed., published by Network Press, copyright by Sybex, Inc., 1996, and K. Siyan, xe2x80x9cWindows NT Serverxe2x80x94Professional Reference,xe2x80x9d New Riders Publishing, 1995. All of these publications are incorporated herein by reference. This Windows NT operating system includes facility for supporting a computer network in which resources on various nodes of a network can be accessed from any other node. For example, a disk storage resource on a first node can be accessed, as if it were local, by another node which may be far removed from the first node.
A function that is needed in some systems is that of disk mirroring or phantom disk access. Mirroring usually means that the contents of one disk are duplicated on another disk, i.e., every write to disk is mirrored on another disk, so redundancy is provided. In case of failure of one of the disks, the system can continue operating without hesitation. A degree of fault tolerance is thus provided. In the context of this application, mirroring can mean also that a disk resource physically located on a first node may be accessed transparently by another node, just as if the access was through the first node. This may also be referred to as phantom disk operation, or as xe2x80x9cclusteringxe2x80x9d of disks. In any event, a function such as mirroring or phantom disk access as described here is not facilitated by the Windows NT operating system.
It has been the practice to configure a network operating system such as Windows NT in such a manner that servers can share disk drives over a local area network. However, there is no arrangement whereby disk drives on one machine can be made to appear as if they were physically located on another machine. The disk I/O requests available in Windows NT are made up or defined by so-called Major Function Code routines, and it is these routines which must be used in any efficient and compatible functionality of disk mirroring.
It is therefore one object of the present invention to provide an improved method of mirroring network resources such as disk drives on a computer network.
A further object of the invention is to provide a mechanism for allowing disk drives on one machine to appear as if they were physically located on another machine, particularly in a Windows NT network environment, and using standard Windows NT Major Function Code routines.
It is another object of the present invention to provide an improved mechanism for disk I/O to take place between matching remote disk mirror drivers.
It is yet another object of the present invention to provide a method and apparatus for accessing a remote disk through nodes on a network which mirror the disk, employing packet communication between the access node and remote node which is compatible with operating systems such as Windows NT or the like.
The above as well as additional objects, features, and advantages of the present invention will become apparent in the following detailed written description.
According to one embodiment of the invention, a mechanism is provided where disk I/O can take place between matching remote disk mirror drivers on a network (e.g., a LAN or local area network). A computer network has a number of nodes which interact with one another via messages using a network protocol, and a node may access various network resources such a remote disk drives as if they were local. A disk drive is mirrored so that it may be accessed via one node when the drive is actually located at another node. This mirroring is transparent to the node which originates a disk request. A high-speed communications path is provided between the node which actually has the disk resource and the node from which the disk drive is mirrored. This communications path is usually separate from the primary or xe2x80x9cpublicxe2x80x9d network path (i.e., the LAN). On the communications path between the two nodes, a packet protocol is used which conveys a minimum but adequate amount of information needed to satisfy the requirements for disk I/O to take place between matching remote disk mirror drivers on the two nodes. The packet structure minimizes the need for creating new storage objects and saving them in implementing the mirroring functions. This packet identifies the remote drive and the function to be performed, has a field for status of a request packet, defines the length of the data field, and conveys the data, if any. The same packet is used for requests and returns. It contains values used to facilitate data flow instead of pointers and structures to queues. In a preferred embodiment, the packet is optimized for use with Windows NT structures, minimizing data copies.